九个办公点,如何异地组网实现设备统一监测?设备成本仅需110元/台,跨省延迟仅 22ms!低成本组网解决方案,实现快速部署与运维提效。
随着公司规模逐渐扩大,我作为公司唯一的基础设施运维,需要支撑维护 9 个办公点的录像设备、NAS、打印机等设施。这些设备分散在不同城市,急需打通各个办公点的网络,将所有设施纳入统一监测和管控。
作为一名业余运维,我对传统组网方案了解有限,只知道有 VPN、专线、SD-WAN、Tailscale、Zerotier One 几种方案。不过,经验不够 AI 来凑,DeepSeek 给出了详细的方案对比分析。
| 方案类型 | 优势 | 劣势 | 适用场景 |
|---|---|---|---|
| 专线互联 | <10ms延迟 99.99%可靠性 |
万元级月费 部署周期长 |
金融/医疗核心系统 |
| IPsec VPN | 厂商兼容性好 | 配置复杂 NAT穿透困难 |
少量固定站点互联 |
| SD-WAN | 智能选路 QoS保障 |
年费高昂 需要专用设备 |
跨国企业分支机构 |
| Tailscale | 零配置部署 按需计费 |
依赖公网质量 | 中小型多站点互联 |
恰好,我对 Tailscale 有着非常丰富的经验。几年前在南京时,我使用过 Zerotier One 和 Tailscale 来支持影视项目的远程协作、远程剪辑、远程调色,对其简单的配置和极低的延迟印象深刻。
Tailscale 是基于 WireGuard 内核构建的零配置组网工具,其核心技术突破体现在三大层面:
虽然 Zerotier One 也是一个不错的选择,但综合对比后,Tailscale 更适合我们的需求:
| 对比维度 | Tailscale | Zerotier One |
|---|---|---|
| 免费设备数量 | 100台 | 10台 |
| QNAP支持 | 官方维护套件 | 仅第三方套件 |
| 配置难度 | 极简,文档完善 | 相对复杂 |
| Subnet配置 | 一键配置 | 需手动设置 |
综合来看,采用 Tailscale 组网,是我们现阶段成本最低、能快速上线、维护起来最简单的方案。
运行 Tailscale 只需要在每个办公点的子网中部署一台 Linux 服务器即可。如果不考虑外形,甚至还可以用树莓派。
我选用了戴尔 Wyse 3040 瘦客户机:
| 配置项 | 参数 |
|---|---|
| 处理器 | Intel Atom x5-Z8350 |
| 内存 | 2GB DDR3L |
| 存储 | 8GB eMMC |
| 网络 | 千兆网口 |
| 价格 | 咸鱼二手 110元/台 |

戴尔 Wyse 3040 瘦客户机预装的是 ThinOS 系统,需要改装为 Ubuntu Server。
💡 系统版本选择建议
最好选用最新的 LTS 发行版,因为老旧版本可能找不到可用的国内软件镜像源。
安装前需要先解锁 BIOS:
Fireport💡 额外配置建议
建议同时设置上电自动开机,这样在停电后恢复电力时,无需人工干预就能自动恢复运行。
系统安装过程按照向导操作即可,需要注意以下几点:
<公司名>-gateway-<地点>系统重启后进入终端,首先配置 SSH 密钥登录:
# 添加公钥
echo "你的公钥内容" >> ~/.ssh/authorized_keys
# 设置权限
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
测试 SSH 密钥登录成功后,禁用密码登录以提高安全性:
# 编辑 SSH 配置
sudo nano /etc/ssh/sshd_config
# 找到 PasswordAuthentication 项目配置为 no
# 重启 SSH 服务
sudo systemctl restart sshd
# 更新系统软件包(可选)
sudo apt full-upgrade
# 重启系统
sudo reboot
# 安装网络工具
sudo apt install -y net-tools
根据 Tailscale 官方文档,执行一键安装脚本:
curl -fsSL https://tailscale.com/install.sh | sh
⚠️ 注意
由于 Tailscale 服务器在国外,安装过程可能较慢,需要耐心等待。
安装完成后,执行启动命令:
sudo tailscale up
终端会输出一个认证网址,将此网址在浏览器中打开:

对于长期运行的设备,建议在控制台中点击 Disable key expiry 关闭密钥过期功能。
💡 为什么要禁用密钥过期?
默认情况下,设备密钥会在 180 天后过期。密钥过期后,必须在客户端上重新登录才能继续使用。禁用后,设备名下方会出现 Expiry disabled 标识。
使用另一台接入了 Tailscale 的设备测试连接:
PS C:\Users\admin> ping 100.***.***.***
正在 Ping 100.***.***.*** 具有 32 字节的数据:
来自 100.***.***.*** 的回复: 字节=32 时间=26ms TTL=64
来自 100.***.***.*** 的回复: 字节=32 时间=6ms TTL=64
来自 100.***.***.*** 的回复: 字节=32 时间=7ms TTL=64
来自 100.***.***.*** 的回复: 字节=32 时间=7ms TTL=64
100.***.***.*** 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 6ms,最长 = 26ms,平均 = 11ms
连接测试正常后,即可关机断电准备迁移。
将戴尔 Wyse 3040 瘦客户机与电源线、网线一起打包,寄送给目标办公点的同事。
收到设备后,通过微信视频指导同事:
设备启动后,尝试 Ping 测试:
ping 100.***.***.*** -t
正在 Ping 100.***.***.*** 具有 32 字节的数据:
请求超时。
请求超时。
请求超时。
来自 100.***.***.*** 的回复: 字节=32 时间=6ms TTL=64
来自 100.***.***.*** 的回复: 字节=32 时间=6ms TTL=64
来自 100.***.***.*** 的回复: 字节=32 时间=7ms TTL=64
等待设备回复后,建立 SSH 连接:
ssh ubuntu@example-gateway-01
将 Linux 设备用作子网路由器需要启用 IP 转发功能。参考 Tailscale 官方文档,首先验证配置目录:
ls -la /etc/sysctl.d
确认目录存在后,执行以下命令启用 IP 转发:
# 启用 IPv4 转发
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
# 启用 IPv6 转发
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
# 应用配置
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
运行 ifconfig 查看网络配置:
ifconfig
enp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.2.3 netmask 255.255.255.0 broadcast 192.168.2.255
inet6 240e:****:****:****:****:****:****:**** prefixlen 64 scopeid 0x0<global>
inet6 fe80::****:****:****:**** prefixlen 64 scopeid 0x20<link>
ether 54:**:**:**:**:** txqueuelen 1000 (Ethernet)
...
根据输出信息:
192.168.2.3255.255.255.0可以确定该办公点的局域网网段为 192.168.2.0/24。
执行以下命令公布子网路由并接受其他子网的路由:
sudo tailscale up --accept-routes --advertise-routes=192.168.2.0/24
参数说明:
--advertise-routes:公布本地子网路由--accept-routes:接受其他网关的子网路由,实现跨办公点互访前往 Tailscale 管理控制台,点击该设备,可以看到 Subnets - Awaiting Approval:

点击 Edit,勾选要公开的子网路由后保存:

配置完成后,退出 SSH 连接,尝试 Ping 办公点 B 的路由器来验证子网连接:
ping 192.168.2.1 -t
正在 Ping 192.168.2.1 具有 32 字节的数据:
来自 192.168.2.1 的回复: 字节=32 时间=140ms TTL=63
来自 192.168.2.1 的回复: 字节=32 时间=7ms TTL=63
来自 192.168.2.1 的回复: 字节=32 时间=6ms TTL=63
来自 192.168.2.1 的回复: 字节=32 时间=6ms TTL=63
来自 192.168.2.1 的回复: 字节=32 时间=7ms TTL=63
至此,接入 Tailscale 的设备已经可以访问办公点 B 局域网中的任意设备了。只需对其他办公点如法炮制即可。
在 Tailscale 管理控制台配置 ACL 策略,限制访问权限:
{
"acls": [
{
"action": "accept",
"src": ["group:engineering"],
"dst": ["subnet:192.168.2.0/24:*"]
}
]
}
使用 UFW 配置防火墙规则:
# 允许 Tailscale 端口
sudo ufw allow 41641/udp
# 允许本地子网访问
sudo ufw allow from 192.168.2.0/24
# 启用防火墙
sudo ufw enable
在部署前必须提前规划好各个办公点的网段,避免造成子网路由冲突。
示例规划:
| 办公点 | 网段 | 网关设备 |
|---|---|---|
| 总部(厦门) | 192.168.1.0/24 | gateway-xiamen |
| 分部A(南京) | 192.168.2.0/24 | gateway-nanjing |
| 分部B(上海) | 192.168.3.0/24 | gateway-shanghai |
| 分部C(北京) | 192.168.4.0/24 | gateway-beijing |
⚠️ 重要提示
如果办公点 A 使用了 192.168.1.0/24,其他办公点就不可再使用此网段,否则会导致路由冲突。
在我的实践中,各办公点之间的延迟表现如下:
| 连接路径 | 运营商 | 平均延迟 |
|---|---|---|
| 厦门 ↔ 厦门 | 电信 ↔ 电信 | <10ms |
| 厦门 ↔ 南京 | 电信 ↔ 电信 | ~22ms |
| 厦门 ↔ 上海 | 电信 ↔ 电信 | ~18ms |
💡 性能基准
正常情况下,同一运营商使用 Tailscale 连接,延迟应该在 30ms 以内。
如果遇到超过 100ms 的延迟,可能的原因和解决方案:
问题诊断流程:
优化建议:
启用 IPv6
开启 UPnP
光猫桥接模式(高级方案)
| 项目 | 单价 | 数量 | 小计 |
|---|---|---|---|
| 戴尔 Wyse 3040 | ¥110 | 9台 | ¥990 |
| 网线(5米) | ¥10 | 9根 | ¥90 |
| 物流费用 | ¥15 | 9次 | ¥135 |
| 合计 | ¥1,215 |
| 项目 | 费用 | 说明 |
|---|---|---|
| Tailscale 个人版 | ¥0 | 支持100台设备 |
| Ubuntu Server | ¥0 | 开源免费 |
| 合计 | ¥0 |
| 方案 | 初期投入 | 月度费用 | 年度总成本 |
|---|---|---|---|
| Tailscale方案 | ¥1,215 | ¥0 | ¥1,215 |
| 专线互联 | ¥50,000+ | ¥10,000+ | ¥170,000+ |
| SD-WAN | ¥30,000+ | ¥3,000+ | ¥66,000+ |
| IPsec VPN | ¥20,000+ | ¥500+ | ¥26,000+ |
成本节约率:99.3%(相比专线方案)
推荐使用:
不推荐使用:
至此,一个低成本、高性能的异地组网方案就部署完成了。9个办公点的所有设备都可以通过统一的虚拟网络进行访问和管理,大大提升了运维效率。
下一篇文章,我将继续介绍基于 Tailscale 组网后,如何对设备进行状态监测,敬请期待!